Synea restart dat (zrusenie strankovania)

Otázka od: Vlko II.

15. 7. 2004 14:39

Na poziadavku zakaznika som pravil som export do excellu zo Synea.
Trva to sice dlhsie, ale funguje to celkom obstojne. Bohuzial mam jeden
problem.
Ak sa export urobi prvy krat cez PrepareReport, vysledok vyzera ako ma, ak
ale predtym bol urobeny preview alebo export, tak sa vlozi page headere a
footere, co nevyzera vo vyslednom excelle dobre. Nie je nejaky sposob
ako Syneu restartnut? Aby bol vysledok ako po prvom volani prepare?

Vlko


--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net

Odpovedá: Vaclav Krmela

15. 7. 2004 15:25

> From: Vlko II.
>
> Ak sa export urobi prvy krat cez PrepareReport, vysledok vyzera ako
ma, ak
> ale predtym bol urobeny preview alebo export, tak sa vlozi page
headere a
> footere, co nevyzera vo vyslednom excelle dobre.

O jakou verzi Sinea se jedna?
Jak je udelane volani exportu, kousek kodu.

Podle meho nazoru neni potreba explicitne volat Prepare.
Prepare se pri vsech vystupech provadi automaticky.

Prepare ma smysl pouze ve specialnich pripadech,
napr. zjisteni poctu stranek sestavy bez generovani vystupu.

Hlavy a paty stranek jsou ve vystupu tehdy,
pokud jsou uvedeny v predloze sestavy.
Pokud je tam nechces, tak je z predlohy vyhod.

Vaclav Krmela




Odpovedá: Vlko II.

15. 7. 2004 15:40

On Thu, 15 Jul 2004 16:06:06 +0200, Vaclav Krmela
<krmela@ustinadorlici.cz> wrote:

>> Ak sa export urobi prvy krat cez PrepareReport, vysledok vyzera ako
> ma, ak
>> ale predtym bol urobeny preview alebo export, tak sa vlozi page
> headere a
>> footere, co nevyzera vo vyslednom excelle dobre.
>
> O jakou verzi Sinea se jedna?
> Jak je udelane volani exportu, kousek kodu.


Sinea 7, ale asi sa nerozumieme, ja nepouzivam export, ja
ho vytvaram, zavolam prepare a z vygenerovaneho ReportPrint.Vystup
prechadzam po strankach a tam po prvkoch (predtym ale sikovnym
algoritmomv zistim rozmiestnenie stlpcov v excele z jednotlivych
bandov). Cize Prepare potrebujem, aby som vygeneroval nejaky vystup
z db. Ide o to, ze ked sa vola prepare po prvy krat, je tam iba
jeden page header a nie je tam page footer. Po preview sa uz ale
rozbije po strankach, to chcem ale zrusit.

> Hlavy a paty stranek jsou ve vystupu tehdy,
> pokud jsou uvedeny v predloze sestavy.
> Pokud je tam nechces, tak je z predlohy vyhod.

To by slo ale page header na prvej stranke potrebujem.


vlko

--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net

Odpovedá: Vaclav Krmela

15. 7. 2004 15:44

> From: Vlko II.
>
> Ide o to, ze ked sa vola prepare po prvy krat, je tam iba
> jeden page header a nie je tam page footer.

Tomu moc neverim. Zalezi na zpusobu volani,
ale to tajis, takze se k tomu nmohu vyjadrit.

> Po preview sa uz ale
> rozbije po strankach, to chcem ale zrusit.

Po strankach to bude vzdy. Jsou dve moznosti:
- natavit velikost papiru tak vysokou,
aby se vesla cela sestava na jeden list
- nastavit horni a dolni okraj papiru na 0,
aby na sebe listy plynule navazovaly

 
> > Hlavy a paty stranek jsou ve vystupu tehdy,
> > pokud jsou uvedeny v predloze sestavy.
> > Pokud je tam nechces, tak je z predlohy vyhod.
>
> To by slo ale page header na prvej stranke potrebujem.

K tomu ucelu lze pouzit oddil zacatku sestavy.

Vaclav Krmela



Odpovedá: Vlko II.

15. 7. 2004 18:30

On Thu, 15 Jul 2004 16:42:10 +0200, Vaclav Krmela
<krmela@ustinadorlici.cz> wrote:

>> Ide o to, ze ked sa vola prepare po prvy krat, je tam iba
>> jeden page header a nie je tam page footer.
>
> Tomu moc neverim. Zalezi na zpusobu volani,
> ale to tajis, takze se k tomu nmohu vyjadrit.

Nuz tiez mi to je divne, ale ja som to neprogramoval  Ale
skutocnostou je, ze ked sa zavola prepare uplne prvy krat v programe
stranky nie su vytvorene, je to akoby bola len jedna stranka,
akonahle, sa zavola preview, design alebo implementovany export
uz stranka obsahuje aj page footer a je rozbita na jednotlive stranky.
Dalej sa mi uz nijakym sposobom nepodarilo dostat to do stavu
(restartovat?) syneu aby urobila to co prvy krat.


> K tomu ucelu lze pouzit oddil zacatku sestavy.

neviem mozno by pomohlo spravit nejaku vzorovu app?

vlko

--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net


Odpovedá: Vaclav Krmela

15. 7. 2004 19:38

> From: Vlko II.
>
> ked sa zavola prepare uplne prvy krat v programe
> stranky nie su vytvorene, je to akoby bola len jedna stranka,

Tento stav je chybny. Je pred volanim Prepare nactena predloha?
Podle popisu to vypada, ze ne.

> akonahle, sa zavola preview, design alebo implementovany export
> uz stranka obsahuje aj page footer

Regulerni volani provede pred Prepare nacteni predlohy.
Pak sestava vypada tak, jak je uvedeno v predloze.

> a je rozbita na jednotlive stranky.

To je spravny stav, sestava obsahuje vsechny oddily, jak ma.

> Dalej sa mi uz nijakym sposobom nepodarilo dostat to do stavu
> (restartovat?) syneu aby urobila to co prvy krat.

Prvni stav pred nactenim predlohy je stav nedefinovany.
Nevidim duvod, proc zamerne uvadet generator sestav do tohoto stavu.

Jediny spravny postup je nedefinovat predlohu tak,
Aby obsahovala ty oddily, ktere skutecne potrebujes.
Ostatni nepotrebne oddily z predlohy vyhazej.

Vaclav Krmela




Odpovedá: Vlko II.

16. 7. 2004 12:20

On Thu, 15 Jul 2004 20:08:31 +0200, Vaclav Krmela
<krmela@ustinadorlici.cz> wrote:
>> Dalej sa mi uz nijakym sposobom nepodarilo dostat to do stavu
>> (restartovat?) syneu aby urobila to co prvy krat.

S tym exportom do excelu, nie je to moc rychle ale funguje to vynikajuco.
Skusobnu app najdete na http://vlko.zilina.net/dwn/SynExcell.exe.
Najskor treba zadefinovat ado connection string, stlacit connect, potom
zadat sql string, vybrat .pts subor a stlacit export.

Kedze vidim, ze moj popisovany pripad sa nevyskytuje vzdy, ale len obcas
potreboval by som vediet, ako nastavit vysku stranky na nejaku maximalnu
hodnotu?
Zatial skusobne pouzivam:
   for i := 0 to ReportPrint.Formaty.Count-1 do
     ReportPrint.Formaty.Format[i].Vyska := 999999;
bohuzial to nic nerobi 

vlko



--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net


Odpovedá: Vaclav Krmela

16. 7. 2004 14:45

> From: Vlko II.
>
> ako nastavit vysku stranky na nejaku maximalnu
> hodnotu?

Vyska stranky je soucasti predlohy tiskove sestavy.
Nastavuje se ve vlastnostech sestavy, zalozka Papir.
Prida se novy uzivatelsky format....

> Zatial skusobne pouzivam:
> for i := 0 to ReportPrint.Formaty.Count-1 do
> ReportPrint.Formaty.Format[i].Vyska := 999999;
> bohuzial to nic nerobi 

To ani nemuze, protoze to je nesmysl.

Vaclav Krmela



Odpovedá: Vlko II.

19. 7. 2004 18:28

On Fri, 16 Jul 2004 15:06:16 +0200, Vaclav Krmela
<krmela@ustinadorlici.cz> wrote:

> Vyska stranky je soucasti predlohy tiskove sestavy.
> Nastavuje se ve vlastnostech sestavy, zalozka Papir.
> Prida se novy uzivatelsky format....

Bohuzial potrebujem to spravit programovo.

>> Zatial skusobne pouzivam:
>> for i := 0 to ReportPrint.Formaty.Count-1 do
>> ReportPrint.Formaty.Format[i].Vyska := 999999;
>> bohuzial to nic nerobi 
> To ani nemuze, protoze to je nesmysl.

No pre to mi to asi nefunguje, je nejaka cesta ako nastavit vysku
stranky s programu?

vlko

--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net


Odpovedá: Vaclav Krmela

19. 7. 2004 20:55

> From: Vlko II.
>
> > Vyska stranky je soucasti predlohy tiskove sestavy.
> > Nastavuje se ve vlastnostech sestavy, zalozka Papir.
>
> Bohuzial potrebujem to spravit programovo.

Stale nevidim duvod proc.
Pro export stejne musi byt jina predloha nez pro tisk.
Tak proc by vyska papiru nemohla byt ulozena primo v predloze?

> je nejaka cesta ako nastavit vysku stranky s programu?

Asi ne.
V unitu sestprn jsou sice nedokumentovane globalni promenne:
  FiktSirkaPapiru : longint;
  FiktVyskaPapiru : longint;
Nebo nedokumentovane procedury:
  procedure SetFiktSirkaPapiru(Value: longint);
  procedure SetFiktVyskaPapiru(Value: longint);
ale jejich pouziti bych rozhodne nedoporucoval.

Ja jednoznacne doporucuji pro ruzna pouziti
vytvorit ruzne predlohy. To se mi vzdy osvedcilo.

Jakakoliv programova zmena predlohy znemoznuje
koncovemu uzivateli aplikace tvorbu vlastnich predloh.
Nebo ho alespon silne omezi.

Vaclav Krmela



Odpovedá: Vlko II.

19. 7. 2004 22:23

On Mon, 19 Jul 2004 21:55:21 +0200, Vaclav Krmela
<krmela@ustinadorlici.cz> wrote:

> Ja jednoznacne doporucuji pro ruzna pouziti
> vytvorit ruzne predlohy. To se mi vzdy osvedcilo.

Neviem, co je na tom zle urobit univerzalny export do excelu?
Mame existujuci projekt v ktorom je cca 46 druhov reportov, a
robit pre kazdy export do excelu osobitny vzor?

> Jakakoliv programova zmena predlohy znemoznuje
> koncovemu uzivateli aplikace tvorbu vlastnich predloh.
> Nebo ho alespon silne omezi.

Uzivatel vobec nemusi vediet ze som tu hodnotu pri exporte zmenil,
ked ju potom vratim?

vlko

BTW: odporucam vyskusat funkcnost mojho prikladu:
http://vlko.zilina.net/dwn/SynExcell.exe
Najskor treba zadefinovat ado connection string, stlacit connect, potom
zadat sql string, vybrat .pts subor a stlacit export.
A vyskusat funkcnost na niektorom vasom pts.

BTW2: ani SetFiktVyskaPapiru(9999999); problem neriesi




--


--------------
mail: vlko_@pobox.sk
web: http://vlko.zilina.net

Odpovedá: Vaclav Krmela

20. 7. 2004 7:03

> From: Vlko II.
>
> > Jakakoliv programova zmena predlohy znemoznuje
> > koncovemu uzivateli aplikace tvorbu vlastnich predloh.
> > Nebo ho alespon silne omezi.
>
> Uzivatel vobec nemusi vediet ze som tu hodnotu
> pri exporte zmenil, ked ju potom vratim?

Problem stoji obracene.
Uzivatel nemuze volne editovat predlohy pro tisk.
Jestlize uzivatel zmeni nejakym nevhodnym zpusobem
predlohu pro tisk, prestanou fungovat exporty.
V tom vidim problem.

> BTW: odporucam vyskusat funkcnost mojho prikladu:

Pokud chces nejake vyjadreni ke zpusobu volani,
posli ukazku zdrojoveho kodu.
K prelozenemu EXE se nebudu vyjadrovat,
zvlaste kdyz ke svemu behu potrebuje nejaky
dalsi nespecifikovany balast.

Vaclav Krmela